正確的設計: 理應是設計出一個不是最差的架構,而不是要試圖設計一個最好的架構 (Never shoot for the best architecture, but rather the least worst architecture)。
other blog: https://xiang753017.gitbook.io/zixiang-blog/xi-tong-she-ji-rong-yi-chan-sheng-she-ji-mang-dian
正確的設計: 理應是設計出一個不是最差的架構,而不是要試圖設計一個最好的架構 (Never shoot for the best architecture, but rather the least worst architecture)。
在工作上時常會遇到 JR. 工程師剛上工就想要導入各種系統設計,但往往都無法被接受。原因通常不外乎是沒有延續本來系統的架構為理由,缺乏一制性等等。
要避免這種狀況,會有三個考慮的準則:
實際操作的時候,應該參考下列流程:
Read Requirements -> Extract needs characteristics -> pick must do characteristics
System Domain Concern | Architecture characteristics |
---|---|
Mergers and acquisitions | Interoperability, scalability, adaptability, extensibility |
Time to market | Agility, testability, deployability |
User satisfaction | Performance, availability, fault tolerance, testability, deployability, agility, security |
Competitive advantage | Agility, testability, deployability, scalability, availability, fault tolerance |
Time and budget | Simplicity, feasibility |
[1] Fundamentals of Software Architecture: An Engineering Approach, Mark Richards & Neal Ford